package com.sishu.njrtsdms.service;


import cn.hutool.core.lang.tree.Tree;
import com.sishu.njrtsdms.domain.dto.DictDataForTreeDTO;
import com.sishu.njrtsdms.domain.dto.DictDataNormalDTO;
import com.sishu.njrtsdms.domain.dto.DictTypeForTreeDTO;
import com.sishu.njrtsdms.domain.dto.DictTypeNormalDTO;
import com.sishu.njrtsdms.domain.vo.DictDataVO;
import com.sishu.njrtsdms.domain.vo.DictTypeVO;
import org.jooq.types.ULong;

import java.util.List;

public interface DictDataService {

    /**
     * 条件查询字典类型数据
     *
     * @param dictTypeNormalDTO 字典类型查询条件
     * @return 字典类型完整信息
     */
    List<DictTypeVO> listDictType(DictTypeNormalDTO dictTypeNormalDTO);

    /**
     * 条件查询字典数据信息
     *
     * @param dictDataNormalDTO 字典数据查询条件
     * @return 字典数据信息
     */
    List<DictDataVO> listDictData(DictDataNormalDTO dictDataNormalDTO);

    /**
     * 条件查询字典数据树形结构信息
     *
     * @param dictDataForTreeDTO 字典数据树形结构查询条件
     * @return 字典数据信息
     */
    List<Tree<ULong>> listDictDataForTree(DictDataForTreeDTO dictDataForTreeDTO);

    /**
     * 条件查询字典类型树形结构信息
     *
     * @param dictTypeForTreeDTO 字典类型树形结构查询条件
     * @return 字典类型信息
     */
    List<Tree<ULong>> listDictTypeForTree(DictTypeForTreeDTO dictTypeForTreeDTO);
}